//package com.allwees.data.analysis.stat.service.impl;
//
//import com.allwees.bs.core.model.stat.EStatType;
//import com.allwees.bs.core.model.stat.req.DailyStatReq;
//import com.allwees.bs.core.modelbase.constant.EPlatform;
//import com.allwees.core.common.util.DateUtil;
//import com.allwees.data.analysis.stat.EStatMode;
//import com.allwees.data.analysis.stat.dao.DailyStatDao;
//import com.allwees.data.analysis.stat.entity.DailyStatEntity;
//import com.allwees.data.analysis.stat.req.DailyQueryStatReq;
//import com.allwees.data.analysis.stat.service.DailyStatService;
//import com.allwees.data.analysis.stat.vo.DailyStatDetailVo;
//import com.allwees.data.analysis.stat.vo.DailyStatVo;
//import org.springframework.stereotype.Service;
//
//import java.util.Date;
//
///**
// * @author yangylsky
// * @since 2020-04-14
// */
//@Service
//public class DailyStatServiceImpl extends BaseStatServiceImpl<
//		DailyStatEntity,
//		DailyStatDetailVo,
//		DailyStatVo,
//		DailyStatDao,
//		DailyQueryStatReq> implements DailyStatService {
//
//	@Override
//	protected EStatMode statMode() {
//		return EStatMode.DAILY;
//	}
//
//	@Override
//	public void saveStat(DailyStatReq req) {
//		DailyStatEntity dailyStat = DailyStatEntity.ofDefault(req.getStatType(), req.getDateTo());
//		dailyStat.setValue(req.getCount().doubleValue());
//
//		for (EPlatform platform : EPlatform.values()) {
//			if(platform.isMock()) {
//				continue;
//			}
//			dailyStat.setPlatform(platform);
//			saveStatToDb(dailyStat);
//		}
//	}
//
//	@Override
//	public void statAndSave(DailyStatReq req) {
//		int between = DateUtil.getDaysBetween(req.getDateFrom(), req.getDateTo());
//		for(int i = 0; i < between; i++) {
//			stat(req.getStatType(), DateUtil.addDays(req.getDateFrom(), i), DateUtil.addDays(req.getDateFrom(), i + 1));
//		}
//	}
//
//	@Override
//	protected DailyStatEntity defaultEntity(EStatType statType, Date dateFrom) {
//		return DailyStatEntity.ofDefault(statType, dateFrom);
//	}
//
//    @Override
//    protected void saveStatToDb(DailyStatEntity stat) {
//        stat.setValue(stat.getValue() == null ? (double) 0 : stat.getValue());
//		stat.setUuid(stat.uniqueId());
//        if (statDao.findByUuid(stat.getUuid()) == null) {
//        	statDao.create(stat);
//        } else {
//        	statDao.updateByUuid(stat, stat.getUuid());
//        }
//    }
//
//	@Override
//	protected String getSqlQueryDir() {
//		return "stat_common";
//	}
//}